`ifndef _ral_reg_Gjm_sys_global_cfg_status_cfg_rtl_
`define _ral_reg_Gjm_sys_global_cfg_status_cfg_rtl_

`include "vmm_ral_rw_field_rtl.sv"
`include "vmm_ral_notifier_rtl.sv"


module ral_reg_Gjm_sys_global_cfg_status_cfg_rtl(input  clk,
                              input  rstn,
                              input  [31:0] hst_wdat,
                              output [31:0] hst_rdat,
                              input  [3:0] hst_sel,
                              input  hst_wen,
                              output [3:0] intp_cfg_out,
                              output intp_cfg_rd, intp_cfg_wr,
                              input  intp_cfg_wen,
                              input  [3:0] intp_cfg_in,
                              output [27:0] rsvd_out,
                              output rsvd_rd, rsvd_wr,
                              input  rsvd_wen,
                              input  [27:0] rsvd_in);

vmm_ral_rw_field_rtl #(4, 'h8)
   intp_cfg(clk, rstn, intp_cfg_out,
   hst_wdat[3:0], hst_sel[0], hst_wen,
   intp_cfg_in, intp_cfg_wen);

vmm_ral_rw_field_rtl #(4, ('h1234567>>0))
   rsvd_3_0(clk, rstn, rsvd_out[3:0],
   hst_wdat[7:4], hst_sel[0], hst_wen,
   rsvd_in[3:0], rsvd_wen);

vmm_ral_rw_field_rtl #(8, ('h1234567>>4))
   rsvd_11_4(clk, rstn, rsvd_out[11:4],
   hst_wdat[15:8], hst_sel[1], hst_wen,
   rsvd_in[11:4], rsvd_wen);

vmm_ral_rw_field_rtl #(8, ('h1234567>>12))
   rsvd_19_12(clk, rstn, rsvd_out[19:12],
   hst_wdat[23:16], hst_sel[2], hst_wen,
   rsvd_in[19:12], rsvd_wen);

vmm_ral_rw_field_rtl #(8, ('h1234567>>20))
   rsvd_27_20(clk, rstn, rsvd_out[27:20],
   hst_wdat[31:24], hst_sel[3], hst_wen,
   rsvd_in[27:20], rsvd_wen);


vmm_ral_notifier_rtl _n_intp_cfg(clk, rstn, hst_sel[0], hst_wen, intp_cfg_rd, intp_cfg_wr);
vmm_ral_notifier_rtl _n_rsvd(clk, rstn, |hst_sel[3:0], hst_wen, rsvd_rd, rsvd_wr);


assign hst_rdat[31:0] = { rsvd_out, intp_cfg_out };


endmodule

`endif
